package cn.fl.riskctrl.ysdb.transform;

import java.util.ArrayList;
import java.util.List;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.riskctrl.ysdb.vo.YsejdApplyVO;
import fl.riskctrl.facade.ysdb.dto.YsejdApplyDTO;


 /**
 * @Description: 元素企业司法数据申请表（enterprise judicature data）
   转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据 
 * @Description: VO转换数据变成DTO传递到服务端 
 * @Description: VO不能在服务端出现
 */
public class YsejdApplyVOTransform{

     /**
      * DTO 转  VO
      * @param po YsejdApplyDTO
      * @return YsejdApplyVO
      */
     public static YsejdApplyVO baseToVO(YsejdApplyDTO dto) {
         YsejdApplyVO  vo = null;
         if (dto != null) {
             vo = new YsejdApplyVO();
             vo.setId(dto.getId());
             vo.setYsApplyId(dto.getYsApplyId());//主申请表ID
             vo.setApiUrl(dto.getApiUrl());//API请求地址
             vo.setAccountNm(dto.getAccountNm());//账户名称(三方)
             vo.setAccountPwd(dto.getAccountPwd());//账户密码(三方)
             vo.setEnterpriseNm(dto.getEnterpriseNm());//企业名称
             vo.setDataFm(dto.getDataFm());//数据格式(RCT0010)
             vo.setCodeFm(dto.getCodeFm());//编码格式(RCT0020)
             vo.setIpAddress(dto.getIpAddress());//前端页面的IP地址
             vo.setShPath(dto.getShPath());//附件相对路径
             vo.setAbsLocPath(dto.getAbsLocPath());//附件本地全路径
             vo.setReportNo(dto.getReportNo());//报告编号-关联报告表ID
             vo.setReportStatus(dto.getReportStatus());//报告状态(RCT0015)
             vo.setReportDesc(dto.getReportDesc());//报告描述
             vo.setRemark(dto.getRemark());//备注
             vo.setIsValid(dto.getIsValid());//是否有效(SYS0021)
             vo.setIsDel(dto.getIsDel());//是否删除(SYS0021)
             vo.setApplyTm(dto.getApplyTm());//申请时间

             vo.setCrtTm(dto.getCrtTm());//创建时间
             vo.setCrtUsrId(dto.getCrtUsrId());//创建人
             vo.setMdfTm(dto.getMdfTm());//修改时间
             vo.setMdfUsrId(dto.getMdfUsrId());//修改人
         }
         return vo;
     }

     /**
      * VO 转 DTO
      * @param dto YsejdApplyVO
      * @return YsejdApplyDTO
      */
     public static YsejdApplyDTO baseToDTO(YsejdApplyVO vo) {
         YsejdApplyDTO dto = null;
         if (vo != null) {
             dto = new YsejdApplyDTO();
             dto.setId(vo.getId());
             dto.setYsApplyId(vo.getYsApplyId());//主申请表ID
             dto.setApiUrl(vo.getApiUrl());//API请求地址
             dto.setAccountNm(vo.getAccountNm());//账户名称(三方)
             dto.setAccountPwd(vo.getAccountPwd());//账户密码(三方)
             dto.setEnterpriseNm(vo.getEnterpriseNm());//企业名称
             dto.setDataFm(vo.getDataFm());//数据格式(RCT0010)
             dto.setCodeFm(vo.getCodeFm());//编码格式(RCT0020)
             dto.setIpAddress(vo.getIpAddress());//前端页面的IP地址
             dto.setShPath(vo.getShPath());//附件相对路径
             dto.setAbsLocPath(vo.getAbsLocPath());//附件本地全路径
             dto.setReportNo(vo.getReportNo());//报告编号-关联报告表ID
             dto.setReportStatus(vo.getReportStatus());//报告状态(RCT0015)
             dto.setReportDesc(vo.getReportDesc());//报告描述
             dto.setRemark(vo.getRemark());//备注
             dto.setIsValid(vo.getIsValid());//是否有效(SYS0021)
             dto.setIsDel(vo.getIsDel());//是否删除(SYS0021)
             dto.setApplyTm(vo.getApplyTm());//申请时间

             dto.setCrtTm(vo.getCrtTm());//创建时间
             dto.setCrtUsrId(vo.getCrtUsrId());//创建人
             dto.setMdfTm(vo.getMdfTm());//修改时间
             dto.setMdfUsrId(vo.getMdfUsrId());//修改人
         }
         return dto;
     }

	/**
	 * DTO 转  VO
	 * @param po YsejdApplyDTO
	 * @return YsejdApplyVO
	 */
	public static YsejdApplyVO toVO(YsejdApplyDTO dto) {
		YsejdApplyVO  vo = baseToVO(dto);
		//设置自定义扩展属性
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param dto YsejdApplyVO
	 * @return YsejdApplyDTO
	 */
	public static YsejdApplyDTO toDTO(YsejdApplyVO vo) {
		YsejdApplyDTO dto = baseToDTO(vo);
		//设置自定义扩展属性
		return dto;
	}
	
	/**
	 * DTO集合 转 VO集合
	 * @param List<YsejdApplyDTO>
	 * @return List<YsejdApplyVO>
	 */
	public static List<YsejdApplyVO> toVOList(List<YsejdApplyDTO> list) {
		List<YsejdApplyVO>  voList = new ArrayList<YsejdApplyVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (YsejdApplyDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}
	
	/**
	 * VO集合 转 DTO集合
	 * @param list List<YsejdApplyVO>
	 * @return List<YsejdApplyDTO>
	 */
	public static List<YsejdApplyDTO> toDTOList(List<YsejdApplyVO> list) {
		List<YsejdApplyDTO>  dtoList = new ArrayList<YsejdApplyDTO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (YsejdApplyVO vo : list) {
				dtoList.add(toDTO(vo));
			}
		}
		return dtoList;
	}
}
